#ifndef REALTIME_ARRAGE_DIALOG_H_H
#define REALTIME_ARRAGE_DIALOG_H_H

#include "ui_RealtimeArrangeDialog.h"

#include <QDialog>
#include <vector>
#include <boost/shared_ptr.hpp>

class SingleClient;

class RealtimeArrangeDialog : public QDialog, public Ui::RealtimeArrageDialog
{
	Q_OBJECT
public:
	static RealtimeArrangeDialog* instance();
protected:
	void closeEvent(QCloseEvent *event);
private slots:
	void onDeviceIndexChanged(int index);
	void onArrangeButton();
	void onStopButton();
	void setDevicesNames();
	void setInputPinNames();
	void onRefreshButton();
	void onInputPinIndexChanged(int index);
private:
explicit RealtimeArrangeDialog(QWidget* parent = NULL);
	void setupSignals();
	void setupWidget();
private:
	std::vector<boost::shared_ptr<SingleClient> > m_ClientList;
};

#endif
